import { defineStore } from 'pinia'
import { ref } from 'vue'
import type { UserInfo } from '@/api/user/types'

// 定义 Store
export const useUserStore = defineStore(
  'user',
  () => {
    /**
     * 用户信息
     */
    const user = ref<UserInfo>()

    /**
     *保存用户信息，登录时使用
     * @param val
     */
    const setUser = (val: UserInfo) => {
      user.value = val
    }

    /**
     * 清理用户信息，退出时使用
     */
    const clearUser = () => {
      user.value = undefined
    }

    // 记得 return
    return {
      user,
      setUser,
      clearUser,
    }
  },
  // TODO: 持久化
  {
    // persist: true,
    persist: {
      storage: {
        getItem(key) {
          return uni.getStorageSync(key)
        },
        setItem(key, value) {
          uni.setStorageSync(key, value)
        },
      },
    },
  },
)
